const express = require('express');
const router = express.Router();
const Menus = require('../../../controller/system/menus-controller');

/**
 * 创建菜单
 * @route POST /api/private/menus/create
 * @group 菜单管理 - 创建菜单
 * @param {string} parentId - 父级id
 * @param {string} type - 菜单类别
 * @param {string} path - 菜单路径
 * @param {string} component - 菜单地址
 * @param {string} title - 菜单标题
 * @param {string} icon - 菜单图标
 * @param {string} sort - 显示排序
 * @param {string} state - 菜单状态
 * @param {string} showState - 显示排序
 * @param {string} sort - 显示状态
 * @param {string} cache - 显示排序
 * @param {string} externalLink - 是否外链
 * @returns {object} 200 - 成功信息
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/create', Menus.create);

/**
 * 查询菜单信息列表
 * @route POST /api/private/menus/list
 * @group 菜单管理 - 菜单信息列表
 * @param {object} query - 请按固定查询规范
 * @returns {object} 200 - 成功信息
 * @returns {object} 605 - 请求失败
 * @returns {Error}  default - Unexpected error
 */
router.post("/list", Menus.findAll);

/**
 *  根据id查询菜单信息
 * @route POST /api/private/menus/findOne
 * @group 菜单管理 - 单个菜单信息
 * @param {string} id - 菜单id
 * @returns {object} 200 - 成功信息
 * @returns {object} 605 - 请求失败
 * @returns {Error}  default - Unexpected error
 * 
*/
router.post("/findOne", Menus.findOne);

/**
 *  更新菜单信息
 * @route POST /api/private/menus/update
 * @group 菜单管理 - 更新菜单信息
 * @param {object} query - 请按固定查询规范
 * @returns {object} 200 - 成功信息
 * @returns {object} 605 - 请求失败
 * @returns {Error}  default - Unexpected error
 * 
*/
router.post("/update", Menus.update);

/**
 *  删除菜单信息
 * @route POST /api/private/menus/delete
 * @group 菜单管理 - 删除菜单信息
 * @param {string} id - 菜单id
 * @returns {object} 200 - 成功信息
 * @returns {object} 605 - 请求失败
 * @returns {Error}  default - Unexpected error
 * 
*/
router.post("/delete", Menus.delete);

/**
 *  删除所有菜单信息
 * @route POST /api/private/menus/deleteAll
 * @group 菜单管理 - 删除所有菜单信息
 * @returns {object} 200 - 成功信息
 * @returns {object} 605 - 请求失败
 * @returns {Error}  default - Unexpected error
 * 
*/
router.post("/deleteAll", Menus.deleteAll);

module.exports = router;